# 使用官方Node.js 18 LTS镜像
FROM node:18-alpine

# 设置工作目录
WORKDIR /app

# 复制package.json和package-lock.json（如果存在）
COPY package*.json ./

# 安装依赖
RUN npm ci --only=production && npm cache clean --force

# 复制应用程序代码
COPY . .

# 创建必要的目录
RUN mkdir -p /app/File/Images/Avatar \
    && mkdir -p /app/File/Images/PostImage \
    && mkdir -p /var/log/dongning

# 设置文件权限
RUN chown -R node:node /app \
    && chown -R node:node /var/log/dongning

# 切换到非root用户
USER node

# 暴露端口
EXPOSE 3000

# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
  CMD node -e "require('http').get('http://localhost:3000/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1) })" || exit 1

# 启动应用
CMD ["node", "Server/server.js"]